NVSHMEM & NCCL
协同加速·分布式训练
30章 · 从入门到大规模
01
分布式训练概述:从单卡到多卡,为什么需要NVSHMEM和NCCL?
基础概念
02
NCCL基础:通信原语与Ring算法
AllReduce, Broadcast..
03
NVSHMEM基础:对称内存模型、PE概念、Put/Get操作
内存模型
04
环境搭建:NCCL与NVSHMEM安装、版本兼容性、CUDA配置
安装指南
05
NCCL编程入门:初始化通信器、通信组、AllReduce示例
快速上手
06
NVSHMEM编程入门:初始化、对称内存分配、Put/Get示例
快速上手
07
同步机制:NCCL Barrier vs NVSHMEM fence/quiet
差异与场景
08
点对点通信:NCCL Send/Recv vs NVSHMEM Put/Get
延迟与带宽
09
集合通信深入:AllToAll、ReduceScatter原理与调优
NCCL深入
10
NVSHMEM集合操作:collect、fcollect、reduce详解
集合操作
11
协同设计模式一:NVSHMEM细粒度交换 + NCCL全局规约
模式一
12
协同设计模式二:流水线并行梯度传输与聚合
模式二
13
协同设计模式三:数据并行参数缓存 + AllReduce
模式三
14
内存管理:对称内存与通信缓冲区共享及生命周期
内存
15
流与异步操作:NCCL Stream + NVSHMEM异步Put/Get
协同调度
16
性能分析工具:Nsight Systems、NCCL_DEBUG、统计API
分析
17
常见瓶颈分析:带宽利用率、延迟隐藏、内存竞争
瓶颈
18
多节点扩展:InfiniBand/RoCEv2、IB通信与GASNet
多节点
19
故障恢复:NCCL容错机制与NVSHMEM检查点恢复
容错
20
混合精度训练:FP16/BF16通信与细粒度精度控制
混合精度
21
梯度压缩与通信压缩:NCCL插件与NVSHMEM稀疏通信
压缩
22
拓扑感知优化:NCCL拓扑检测与NVSHMEM PE映射
拓扑
23
多流并发:NCCL多Stream + NVSHMEM多PE,避免死锁
并发
24
与PyTorch集成:torch.distributed后端与NVSHMEM插件
PyTorch
25
与TensorFlow集成:通信算子与自定义OP
TensorFlow
26
与JAX集成:XLA通信优化与自定义Pmap
JAX
27
大规模训练案例一:千卡级GPT模型中的协同
案例
28
大规模训练案例二:MoE模型 Expert通信 + AllReduce
案例
29
未来趋势:NVLink Switch、CXL互连的影响
趋势
30
总结与最佳实践:选型指南、调优checklist、FAQ
收官